
#include "sys_task.h"
#include <stdio.h>
#include "msh.h"

// UART硬件初始化（由硬件驱动实现）
void uart_hw_init(void);

// UART发送字节（由硬件驱动实现）
void uart_send_byte(uint8_t data);

// UART发送字节数组（由硬件驱动实现）
void uart_set_rx_callback(void (*rx_callback)(uint8_t data));
void msh_task_init();
void sys_uart_init()
{
    uart_hw_init();
}

void msh_task_init()
{   msh_init();
    uart_set_rx_callback(msh_rx_input);
}

// 重定向putc函数，支持printf输出到串口

#ifdef __GNUC__
    #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
    #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */

PUTCHAR_PROTOTYPE //发送一个字符协议
{
    (void)f;
    if (ch == '\n') {
        uart_send_byte('\r');  // 换行时自动添加回车
    }
    uart_send_byte((uint8_t)ch);
    return ch;
}

